#include <iostream>
using namespace std;
void print_array(int a[],int n){
	for(int i = 0;i < n;i++){
		cout << a[i] << " ";
	}
	cout <<endl;
}

void swap(int& a,int& b){
	int temp = a;
	a = b;
	b = temp;	
}
// 冒泡排序,可以通过判断当前轮次是否发生了交换，如果没有则表示排序结束了。
void bubble_sort(int arr[],int n){
	// n-1轮
	for(int i = 1;i < n;i++){
		bool isSwap = false;
		// 每一轮要比较n-i次  7 - 1 = 6
		for(int j = 0;j < n - i;j++){
			if(arr[j] > arr[j+1]){
				swap(arr[j],arr[j+1]);
				isSwap = true;
			}
		}
		if(!isSwap){
			break;
		}
		print_array(arr,n);	

	}
}
void test(int arr[],int n){
	for(int i = 1;i < n;i++){
		bool isSwap = false;
		for(int j = 0;j < n- i;j++){
			if(arr[j] > arr[j+1]){
				swap(arr[j],arr[j+1]);
				isSwap = true;
			}
		}
		if(!isSwap){
			break;
		}
	}
}
int main(){
	int arr[] = {15,5,2,7,12,6,1,4,3,9,8,10};
	print_array(arr,12);
//	bubble_sort(arr,12);
	test(arr,12);
	print_array(arr,12);
	return 0;
}
